מכניסים מכתב סודי הכתוב בשפה האנגלית למטריצה של chars עם 50 עמודות (כל תא מכיל אות בודדת/רוח). בכדי להצפין את ההודעה מערבבים את עמודות המטריצה באופן לא ידוע (עמודות בלבד) כך שמתקבל טקסט לא קריא.
א': כמה אפשרויות נצתרך לנסות בשביל לבדוק את כל התוצאות האפשריות עד שנמצא את המכתב המקורי?
ב': תן אלגוריתם יעיל לגילוי המכתב הסודי.
ג': מה החיסרון בפיתרון שהבאת.
ד: כיצד תתגבר על החיסרון הנל?
תשובות
הוסף תשובה
|
לצפיה בתשובות
ינואר 2020
א': 50!
ב': ע"פ שכיחות של צמדים של זוגות אותיות (נניח th הרבה יותר שכיח מbd) ומכפלה שלערכי השכיחות של כל השורות והחזרת המקסימום.
ג: במקרה ויש צמד אותיות שהופיע עם שכיחות 0 זה מאפס את כל השורה
ד: להגדיר אפסילון קטן מאוד אך גדול מאפס שיהיה השכיחות בכל מקום שנתון 0 (נניח 0.00001O)
1. נתון מערך n×m שזה תמונה. בכל תא במערך יש מספר. צריך לסכום את כל האיברים במרובע.
2. כיצד תשפר שכאשר ניגשים למרובע קטן בזמן הכי מהיר נחשב כבר את הסכומים. איזה טבלאות עזר שחושבו בזמן קבלת התמונה הגדולה תייצר, על מנת לגשת ולחשב מהר את המרובע הקטן שניגש אלין, כל פעם מרובע קטן אחר בתוך ה m×n
תשובות
הוסף תשובה
|
לצפיה בתשובות
ספטמבר 2020
אפשר בזמן קבלת התמונה הגדולה ליצור מערך עזר שסוכם בכל תא את כל הערכים עד אליו (אפשר נניח להתחיל מהפינה הימנית העליונה, אבל זה פשוט לא משנה), ואז בזמן אמת להחזיר את הסכום במרובע הרצוי פחות המרובעים שקדמו אליו ואותם אנחנו לא רוצים (קצת קשה להסביר, אבל כדאי לייצר עם דוגמא ואז הרבה יותר מובן).
צריך רק להיזהר לא לסכום או להוריד מרובע פעמיים.
1. כתוב פונקציה בשורה אחת, שמדליקה את הביט ה n.
2. כתוב פונקציה שמקבלת את מספר הביט, וכמה ביטים להדליק. פונקציה בשורה אחת.
3.נתון 32ביט. שהערך בהם הוא בזוגות ביטים 00 או 11 בכל 2 ביטים. אלו ערכים נכונים. תבדוק שלא נכנס ערך 10 או 01 באחת הזוגות.כי זה שגיאה. ללא שימוש ב for
תשובות
הוסף תשובה
|
לצפיה בתשובות
ינואר 2020
3. הרעיון הוא בזוג אחד לדוגמא 11, צריך להפריד אותם ל1 לבד ואת השני 1 לבד, להעמיד אותם אחד מתחת לשני ואז לבדוק אם הם שונים.
ככ בדיוק לעשות עם כל ה 32 ביט בבת אחת.
1. נתון מילה כמו dad,תמצא אם בסטרינג יש מילה שהיא באותם אותיות, כמו add.
2. נתון קובץ שלם של מילים ומילה לחיפוש כמו add. כיצד תמצא את המילים שמורכבות מאותם אותיות כמו dad. ולכתוב ממש את הקוד.
תשובות
הוסף תשובה
|
לצפיה בתשובות
ינואר 2020
1. בודקים את גודל המילה שזה תואם, ואז עושים מערך עזר עם counter ליד כל אות שמאופס בהתחלה, וכל פעם שמופיעה במילה הראשונה מעלים.במילה השניה, מורידים. צריך שיהיה 0 בסוף בכל המערך.
2.לעבור על הקובץ מילה מילה, ולבדוק קודם גודל מילה שתתאים, ואם מתחיל באחת האותיות להכניס לעץ
1. (X+7)&~7 התשובה: align to 8
2. Reverse byte.תשובה נוסת טבלתhash עם 0-255 מוכנה מראש כשכל התשובות שם. גישה מהירה. תוספת לשאלה: במערך עזר של 16
3. שאלה נוספת ומרכזית:נתון מערך דו מימדי, וכל תא יש בה ערך בין 0-255. זה תמונה. לתמונה צריך לגשת לריבוע קטן בתוכה וכל פעם לעוד ריבוע. רוצים לחסוך גישות, ולשמור מערכי עזר..